from pathlib import Path
from trend.charts.wordcloud import KeywordCloudGenerator

def generate_example_wordcloud():
    """生成示例词云图"""
    
    # 示例数据 - 模拟专利关键词及其频率
    example_data = {
        # 人工智能相关
        "人工智能": 850,
        "机器学习": 720,
        "深度学习": 680,
        "神经网络": 580,
        "自然语言处理": 450,
        "计算机视觉": 420,
        "智能算法": 380,
        
        # 技术应用领域
        "图像识别": 320,
        "语音识别": 300,
        "机器翻译": 280,
        "智能机器人": 260,
        "自动驾驶": 240,
        "智能制造": 220,
        "知识图谱": 200,
        
        # 核心技术
        "大数据": 480,
        "云计算": 460,
        "区块链": 280,
        "物联网": 260,
        "5G通信": 240,
        "边缘计算": 180,
        
        # 应用场景
        "智慧城市": 180,
        "智能家居": 160,
        "医疗诊断": 150,
        "金融科技": 140,
        "教育科技": 130,
        "安防监控": 120,
        
        # 研究方向
        "强化学习": 220,
        "迁移学习": 180,
        "联邦学习": 160,
        "对抗学习": 140,
        "集成学习": 120,
        "半监督学习": 100,
        
        # 技术组件
        "数据挖掘": 280,
        "模式识别": 260,
        "推荐系统": 240,
        "决策系统": 220,
        "专家系统": 200,
        "智能控制": 180
    }
    
    # 修改输出目录为 output/wordclouds
    output_dir = Path(__file__).parent.parent / 'output' / 'wordclouds'
    output_dir.mkdir(parents=True, exist_ok=True)
    
    # 创建词云图生成器
    generator = KeywordCloudGenerator(min_font_size=14, max_font_size=80)
    
    # 生成不同版本的词云图
    examples = [
        {
            'name': 'example_all',  # 添加 example_ 前缀以区分示例文件
            'title': '专利关键词全景图',
            'params': {'min_frequency': 1, 'top_n': None}
        },
        {
            'name': 'example_top20',
            'title': 'Top 20专利关键词',
            'params': {'min_frequency': 200, 'top_n': 20}
        },
        {
            'name': 'example_high_freq',
            'title': '高频专利关键词(≥500次)',
            'params': {'min_frequency': 500, 'top_n': None}
        }
    ]
    
    results = []
    for example in examples:
        save_path = output_dir / f"{example['name']}_2023.html"
        try:
            result_path = generator.generate(
                data=example_data,
                year=2023,
                save_path=str(save_path),
                title=example['title'],
                **example['params']
            )
            results.append({
                'name': example['name'],
                'path': result_path,
                'status': 'success'
            })
            print(f"生成成功: {result_path}")
            
        except Exception as e:
            results.append({
                'name': example['name'],
                'error': str(e),
                'status': 'failed'
            })
            print(f"生成失败: {example['name']} - {str(e)}")
    
    # 打印生成结果
    print("\n=== 生成结果汇总 ===")
    for result in results:
        status = '✓' if result['status'] == 'success' else '✗'
        if result['status'] == 'success':
            print(f"{status} {result['name']}: {result['path']}")
        else:
            print(f"{status} {result['name']}: {result['error']}")

if __name__ == "__main__":
    generate_example_wordcloud() 